{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "9c716b58",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "\n",
    "train=pd.read_csv('C:/Users/lenovo/Desktop/train.csv')\n",
    "test=pd.read_csv('C:/Users/lenovo/Desktop/test.csv')\n",
    "datas = pd.concat([train, test], ignore_index = True)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "56c2631a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Name</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Ticket</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Cabin</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Braund, Mr. Owen Harris</td>\n",
       "      <td>male</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>A/5 21171</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Cumings, Mrs. John Bradley (Florence Briggs Th...</td>\n",
       "      <td>female</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>PC 17599</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>C85</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>Heikkinen, Miss. Laina</td>\n",
       "      <td>female</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>STON/O2. 3101282</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Futrelle, Mrs. Jacques Heath (Lily May Peel)</td>\n",
       "      <td>female</td>\n",
       "      <td>35.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>113803</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>C123</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Allen, Mr. William Henry</td>\n",
       "      <td>male</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>373450</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   PassengerId  Survived  Pclass  \\\n",
       "0            1         0       3   \n",
       "1            2         1       1   \n",
       "2            3         1       3   \n",
       "3            4         1       1   \n",
       "4            5         0       3   \n",
       "\n",
       "                                                Name     Sex   Age  SibSp  \\\n",
       "0                            Braund, Mr. Owen Harris    male  22.0      1   \n",
       "1  Cumings, Mrs. John Bradley (Florence Briggs Th...  female  38.0      1   \n",
       "2                             Heikkinen, Miss. Laina  female  26.0      0   \n",
       "3       Futrelle, Mrs. Jacques Heath (Lily May Peel)  female  35.0      1   \n",
       "4                           Allen, Mr. William Henry    male  35.0      0   \n",
       "\n",
       "   Parch            Ticket     Fare Cabin Embarked  \n",
       "0      0         A/5 21171   7.2500   NaN        S  \n",
       "1      0          PC 17599  71.2833   C85        C  \n",
       "2      0  STON/O2. 3101282   7.9250   NaN        S  \n",
       "3      0            113803  53.1000  C123        S  \n",
       "4      0            373450   8.0500   NaN        S  "
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train.head()##数据的组成"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "47863b9d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 891 entries, 0 to 890\n",
      "Data columns (total 12 columns):\n",
      " #   Column       Non-Null Count  Dtype  \n",
      "---  ------       --------------  -----  \n",
      " 0   PassengerId  891 non-null    int64  \n",
      " 1   Survived     891 non-null    int64  \n",
      " 2   Pclass       891 non-null    int64  \n",
      " 3   Name         891 non-null    object \n",
      " 4   Sex          891 non-null    object \n",
      " 5   Age          714 non-null    float64\n",
      " 6   SibSp        891 non-null    int64  \n",
      " 7   Parch        891 non-null    int64  \n",
      " 8   Ticket       891 non-null    object \n",
      " 9   Fare         891 non-null    float64\n",
      " 10  Cabin        204 non-null    object \n",
      " 11  Embarked     889 non-null    object \n",
      "dtypes: float64(2), int64(5), object(5)\n",
      "memory usage: 83.7+ KB\n"
     ]
    }
   ],
   "source": [
    "train.info()##数据集的缺失情况"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "f722eb7c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    549\n",
       "1    342\n",
       "Name: Survived, dtype: int64"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train['Survived'].value_counts()#死亡与存活的比例"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "5733fbf9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='Pclass', ylabel='Survived'>"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.barplot(x=\"Pclass\", y=\"Survived\", data=datas)#社会等级对存活的影响：社会等级越高，存活率越高"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "2dedfd64",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='Sex', ylabel='Survived'>"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.barplot(x=\"Sex\", y=\"Survived\", data=datas)#性别对存活的影响：女性的存活率远大于男性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "a03dfdf9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(28.088425925925918, 0.5, 'Survived')"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 484x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "facet = sns.FacetGrid(datas, hue=\"Survived\",aspect=2)#年龄对存活的影响：在0~35岁中的人群具有更高的生存概率，高于35岁的人群生存概率较低\n",
    "facet.map(sns.kdeplot,'Age',shade= True)\n",
    "facet.set(xlim=(0, train['Age'].max()))\n",
    "facet.add_legend()\n",
    "plt.xlabel('Age') \n",
    "plt.ylabel('Survived') "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "d4f119ab",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='SibSp', ylabel='Survived'>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.barplot(x=\"SibSp\", y=\"Survived\", data=datas)#直系亲友，亲属对存活的影响：拥有2~4位家庭成员的人存活率更高"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "ddabdc37",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='Parch', ylabel='Survived'>"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.barplot(x=\"Parch\", y=\"Survived\", data=datas)#旁系亲友，亲属对存活的影响：拥有2~4位家庭成员的人存活率更高"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "314cf3f9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='FamilySize', ylabel='Survived'>"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#将直系和旁系亲属两个特征合并为家庭大小，可以让我们更直观地观察亲属这个特征对存活率的影响\n",
    "datas['FamilySize']=datas['SibSp']+datas['Parch']+1\n",
    "sns.barplot(x=\"FamilySize\", y=\"Survived\", data=datas)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "0d589941",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='Embarked', ylabel='count'>"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#登船时港口的不同对存活的影响：C和Q地的存活率更高，S地的存活率较低\n",
    "sns.countplot('Embarked',hue='Survived',data=datas)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "2df0a4bb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='Title', ylabel='Survived'>"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#（1）名字的处理\n",
    "#在数据分析中我们可以看到，社会等级对我们的存活率影响非常明显，所以我们可以将姓名替换为称呼前缀，生成新的特征‘Title’，用来对应我们的社会等级。这样我们就将一大串看似没有用的姓名特征转化成了有用的分类型特征。\n",
    "#代表女士的Mrs,Miss和代表社会高层的Master,Royalty的生存率远远高于代表男性的Mr和社会中低层的Officer。\n",
    "datas['Title'] = datas['Name'].apply(lambda x:x.split(',')[1].split('.')[0].strip())\n",
    "datas['Title'].replace(['Capt', 'Col', 'Major', 'Dr', 'Rev'],'Officer', inplace=True)\n",
    "datas['Title'].replace(['Don', 'Sir', 'the Countess', 'Dona', 'Lady'], 'Royalty', inplace=True)\n",
    "datas['Title'].replace(['Mme', 'Ms', 'Mrs'],'Mrs', inplace=True)\n",
    "datas['Title'].replace(['Mlle', 'Miss'], 'Miss', inplace=True)\n",
    "datas['Title'].replace(['Master','Jonkheer'],'Master', inplace=True)\n",
    "datas['Title'].replace(['Mr'], 'Mr', inplace=True)\n",
    "\n",
    "sns.barplot(x=\"Title\", y=\"Survived\", data=datas)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "0a4f8499",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='Fam_type', ylabel='Survived'>"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#（2）家庭特征的处理\n",
    "#在家庭大小特征的分析中我们可以知道，拥有不同家庭成员数量的人存活率不相同。在这里我们将存活率相似的部分归为一类，将家庭大小特征转化为分类型特征。\n",
    "#代表拥有2—4位家庭成员的“Fam_type.2”拥有更高的存活率\n",
    "datas['Fam_size'] = datas['SibSp'] + datas['Parch'] + 1\n",
    "\n",
    "datas.loc[datas['Fam_size']>7,'Fam_type']=0\n",
    "datas.loc[(datas['Fam_size']>=2)&(datas['Fam_size']<=4),'Fam_type']=2\n",
    "datas.loc[(datas['Fam_size']>4)&(datas['Fam_size']<=7)|(datas['Fam_size']==1),'Fam_type']=1\n",
    "datas['Fam_type']=datas['Fam_type'].astype(np.int32)\n",
    "\n",
    "sns.barplot(x=\"Fam_type\", y=\"Survived\", data=datas)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "cc8c73e5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='Board', ylabel='Survived'>"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#（3）舱门数据处理\n",
    "#处理有大量缺失值的舱门数据。关键思想是：要将特征尽可能的处理为分类型特征。那么我们就有两种思路：①缺失值分一类，不缺失的值分为一类 ②缺失值分一类，剩下确定的值再细分类，很明显我们要选择第二种思路。现在我们将缺失值全部用‘U’来填补，已经确定的舱门号则提取出它的首字母作为它的新特征甲板号‘Board’\n",
    "datas['Cabin'] = datas['Cabin'].fillna('U')\n",
    "datas['Board']=datas['Cabin'].str.get(0)\n",
    "sns.barplot(x=\"Board\", y=\"Survived\", data=datas)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "69ba3292",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "CA. 2343        11\n",
       "CA 2144          8\n",
       "1601             8\n",
       "PC 17608         7\n",
       "S.O.C. 14879     7\n",
       "                ..\n",
       "113792           1\n",
       "36209            1\n",
       "323592           1\n",
       "315089           1\n",
       "359309           1\n",
       "Name: Ticket, Length: 929, dtype: int64"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#（4）票号的处理\n",
    "\n",
    "\n",
    "datas['Ticket'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "55f369b7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='TicketGroup', ylabel='Survived'>"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#可以看到，票号并不是单独唯一值，而是可以多个乘客同时拥有相同的票号的。\n",
    "#那么我们可以做出一个大胆的假设，这可能与我们的家属数据有关系，同票号的原因可能是因为同一个家庭共用一个票号，放在现实当中就是相当于购买了一张家庭票。\n",
    "#这样的话我们就可以根据某张票同票号的乘客数量来对特征进行分类。\n",
    "Ticket_Counts = dict(datas['Ticket'].value_counts())\n",
    "datas['TicketGroup'] = datas['Ticket'].apply(lambda x:Ticket_Counts[x])\n",
    "sns.barplot(x='TicketGroup', y='Survived', data=datas)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "0cf751c2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='Ticketlabels', ylabel='Survived'>"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#可以看到，同票号数2~4的’ticket’存活率比其他都高，这与我们的家属数据‘FamilySize’有着相同的规律，所以我们的猜测应该是正确的。\n",
    "datas.loc[datas['TicketGroup']>8,'Ticketlabels']=0\n",
    "datas.loc[(datas['TicketGroup']>4)&(datas['TicketGroup']<=8)|(datas['TicketGroup']==1),'Ticketlabels']=1\n",
    "datas.loc[(datas['TicketGroup']>=2)&(datas['TicketGroup']<=4),'Ticketlabels']=2\n",
    "datas['Ticketlabels']=datas['Ticketlabels'].astype(np.int32)\n",
    "sns.barplot(x='Ticketlabels', y='Survived', data=datas)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "023a2d63",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Name</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Ticket</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Cabin</th>\n",
       "      <th>Embarked</th>\n",
       "      <th>FamilySize</th>\n",
       "      <th>Title</th>\n",
       "      <th>Fam_size</th>\n",
       "      <th>Fam_type</th>\n",
       "      <th>Board</th>\n",
       "      <th>TicketGroup</th>\n",
       "      <th>Ticketlabels</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>61</th>\n",
       "      <td>62</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>Icard, Miss. Amelie</td>\n",
       "      <td>female</td>\n",
       "      <td>38.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>113572</td>\n",
       "      <td>80.0</td>\n",
       "      <td>B28</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>Miss</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>B</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>829</th>\n",
       "      <td>830</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>Stone, Mrs. George Nelson (Martha Evelyn)</td>\n",
       "      <td>female</td>\n",
       "      <td>62.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>113572</td>\n",
       "      <td>80.0</td>\n",
       "      <td>B28</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>Mrs</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>B</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     PassengerId  Survived  Pclass                                       Name  \\\n",
       "61            62       1.0       1                        Icard, Miss. Amelie   \n",
       "829          830       1.0       1  Stone, Mrs. George Nelson (Martha Evelyn)   \n",
       "\n",
       "        Sex   Age  SibSp  Parch  Ticket  Fare Cabin Embarked  FamilySize  \\\n",
       "61   female  38.0      0      0  113572  80.0   B28      NaN           1   \n",
       "829  female  62.0      0      0  113572  80.0   B28      NaN           1   \n",
       "\n",
       "    Title  Fam_size  Fam_type Board  TicketGroup  Ticketlabels  \n",
       "61   Miss         1         1     B            2             2  \n",
       "829   Mrs         1         1     B            2             2  "
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# （5）港口号码的处理\n",
    "datas[datas['Embarked'].isnull()]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "cb94a681",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Pclass  Embarked\n",
       "1       C           76.7292\n",
       "        Q           90.0000\n",
       "        S           52.0000\n",
       "2       C           15.3146\n",
       "        Q           12.3500\n",
       "        S           15.3750\n",
       "3       C            7.8958\n",
       "        Q            7.7500\n",
       "        S            8.0500\n",
       "Name: Fare, dtype: float64"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#港口号码的缺失值比较少，只有2个，一般我们可以直接用众数来进行填补。\n",
    "#但在泰坦尼克号数据集上，登舱的港口可能与社会等级还有票价挂钩，所以我们先看一下港口号和社会等级的关联。\n",
    "datas.groupby(by=[\"Pclass\",\"Embarked\"]).Fare.median()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "0456313d",
   "metadata": {},
   "outputs": [],
   "source": [
    "#很明显在中低层级的人群中，C港口的登舱数量是最多的。在高层级的人群中,Q港口的登舱数量是最多的。所以我们选择将这两个缺失值填补为‘C’\n",
    "datas['Embarked'] = datas['Embarked'].fillna('C')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "08503a76",
   "metadata": {},
   "outputs": [],
   "source": [
    "#（6）票价的处理（原理与港口号码的处理相同，根据社会等级和票价的关系进行填补）\n",
    "datas[datas['Fare'].isnull()]\n",
    "fare=datas[(datas['Embarked'] == \"S\") & (datas['Pclass'] == 3)].Fare.median()\n",
    "datas['Fare']=datas['Fare'].fillna(fare)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "c688f975",
   "metadata": {},
   "outputs": [],
   "source": [
    "#（7）年龄的处理\n",
    "#由于年龄的缺失值非常的多，单独使用众数或者平均数进行填补是不合理的。而且与年龄相关的特征比较多，有社会等级，性别，姓名等等，所以我们采用另一个填补方法：随机森林回归树进行填补\n",
    "from sklearn.ensemble import RandomForestRegressor\n",
    "ages = datas[['Age', 'Pclass','Sex','Title']]\n",
    "ages=pd.get_dummies(ages)\n",
    "known_ages = ages[ages.Age.notnull()].values\n",
    "unknown_ages = ages[ages.Age.isnull()].values\n",
    "y = known_ages[:, 0]\n",
    "X = known_ages[:, 1:]\n",
    "rfr = RandomForestRegressor(random_state=60, n_estimators=100, n_jobs=-1)\n",
    "rfr.fit(X, y)\n",
    "pre_ages = rfr.predict(unknown_ages[:, 1::])\n",
    "datas.loc[ (datas.Age.isnull()), 'Age' ] = pre_ages"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "4870f78c",
   "metadata": {},
   "outputs": [],
   "source": [
    "#（8）异常值处理（此处借鉴了kaggle上大神的经验，对模型的提高比较明显，上升了1%的正确率。）\n",
    "#把姓氏相同的乘客划分为同一组，从人数大于一的组中分别提取出每组的妇女儿童和成年男性。\n",
    "datas['Surname']=datas['Name'].apply(lambda x:x.split(',')[0].strip())\n",
    "Surname_Count = dict(datas['Surname'].value_counts())\n",
    "datas['FamilyGroup'] = datas['Surname'].apply(lambda x:Surname_Count[x])\n",
    "Female_Child_Group=datas.loc[(datas['FamilyGroup']>=2) & ((datas['Age']<=12) | (datas['Sex']=='female'))]\n",
    "Male_Adult_Group=datas.loc[(datas['FamilyGroup']>=2) & (datas['Age']>12) & (datas['Sex']=='male')]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "be278690",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'AverageSurvived')"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#发现绝大部分女性和儿童组的平均存活率都为1或0，即同组的女性和儿童要么全部幸存，要么全部遇难。\n",
    "Female_Child=pd.DataFrame(Female_Child_Group.groupby('Surname')['Survived'].mean().value_counts())\n",
    "Female_Child.columns=['GroupCount']\n",
    "sns.barplot(x=Female_Child.index, y=Female_Child[\"GroupCount\"]).set_xlabel('AverageSurvived')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "54d31e7b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>GroupCount</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0.000000</th>\n",
       "      <td>122</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1.000000</th>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.500000</th>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.333333</th>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.250000</th>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          GroupCount\n",
       "0.000000         122\n",
       "1.000000          20\n",
       "0.500000           6\n",
       "0.333333           2\n",
       "0.250000           1"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#绝大部分成年男性组的平均存活率也为1或0。\n",
    "Male_Adult=pd.DataFrame(Male_Adult_Group.groupby('Surname')['Survived'].mean().value_counts())\n",
    "Male_Adult.columns=['GroupCount']\n",
    "Male_Adult"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "b202c27c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'Lefebre', 'Skoog', 'Turpin', 'Danbom', 'Jussila', 'Barbara', 'Olsson', 'Sage', 'Johnston', 'Zabour', 'Lobb', 'Goodwin', 'Bourke', 'Canavan', 'Panula', 'Boulos', 'Strom', 'Attalah', 'Ford', 'Vander Planke', 'Van Impe', 'Caram', 'Lahtinen', 'Robins', 'Rosblom', 'Palsson', 'Cacic', 'Oreskovic', 'Arnold-Franchi', 'Rice', 'Ilmakangas'}\n",
      "{'Jussila', 'Jonsson', 'Nakid', 'Frolicher-Stehli', 'Daly', 'Dick', 'Duff Gordon', 'Bishop', 'Harder', 'Greenfield', 'Bradley', 'Frauenthal', 'Beane', 'Taylor', 'Chambers', 'Beckwith', 'McCoy', 'Goldenberg', 'Kimball', 'Cardeza'}\n"
     ]
    }
   ],
   "source": [
    "#普遍规律是女性和儿童幸存率高，成年男性幸存较低，所以我们把不符合普遍规律的反常组选出来单独处理。把女性和儿童幸存率为0的组设置为遇难组，把成年男性存活率为1的组设置为幸存组。\n",
    "Female_Child_Group=Female_Child_Group.groupby('Surname')['Survived'].mean()\n",
    "Dead_List=set(Female_Child_Group[Female_Child_Group.apply(lambda x:x==0)].index)\n",
    "print(Dead_List)\n",
    "Male_Adult_List=Male_Adult_Group.groupby('Surname')['Survived'].mean()\n",
    "Survived_List=set(Male_Adult_List[Male_Adult_List.apply(lambda x:x==1)].index)\n",
    "print(Survived_List)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "afcb360b",
   "metadata": {},
   "outputs": [],
   "source": [
    "#为了使处于这两种反常组中的样本能够被正确分类，对测试集中处于反常组中的样本的Age，Title，Sex进行惩罚修改。\n",
    "train=datas.loc[datas['Survived'].notnull()]\n",
    "test=datas.loc[datas['Survived'].isnull()]\n",
    "test.loc[(test['Surname'].apply(lambda x:x in Dead_List)),'Sex'] = 'male'\n",
    "test.loc[(test['Surname'].apply(lambda x:x in Dead_List)),'Age'] = 60\n",
    "test.loc[(test['Surname'].apply(lambda x:x in Dead_List)),'Title'] = 'Mr'\n",
    "test.loc[(test['Surname'].apply(lambda x:x in Survived_List)),'Sex'] = 'female'\n",
    "test.loc[(test['Surname'].apply(lambda x:x in Survived_List)),'Age'] = 5\n",
    "test.loc[(test['Surname'].apply(lambda x:x in Survived_List)),'Title'] = 'Miss'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "a40d189f",
   "metadata": {},
   "outputs": [],
   "source": [
    "#（9）重新划分数据，分出训练集和测试集\n",
    "datas=pd.concat([train, test])\n",
    "datas=datas[['Survived','Pclass','Sex','Age','Fare','Embarked','Title','Fam_type','Board','Ticketlabels']]\n",
    "datas=pd.get_dummies(datas)\n",
    "train=datas[datas['Survived'].notnull()]\n",
    "test=datas[datas['Survived'].isnull()].drop('Survived',axis=1)\n",
    "X = train.values[:,1:]\n",
    "y = train.values[:,0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "40409243",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.8047440699126092 1.01\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#（1）模型的选择\n",
    "#模型的选择非常关键，kaggle社区中大部分参赛选手使用的是随机森林分类器,这说明决策树在我们泰坦尼克号数据集上有着比较好的效果。而博主第一次进行建模的时候使用的是svc，经过svc的kernel参数的调参得出，这是一个线性的数据集，虽然用svc处理能够得到比较好的效果，但处理线性数据我们有更好的选择：逻辑回归\n",
    "#（2）利用逻辑回归建模与调参优化\n",
    "#建立逻辑回归模型并画出第一个重要参数C的学习曲线，找到最佳的C值\n",
    "from sklearn.linear_model import LogisticRegression as LR\n",
    "from sklearn.metrics import accuracy_score\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.feature_selection import SelectFromModel\n",
    "from sklearn.model_selection import cross_val_score\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "\n",
    "fullx = []\n",
    "fsx = []\n",
    "\n",
    "C=np.arange(0.01,10.01,0.5)\n",
    "for i in C:\n",
    "    LR_ = LR(solver=\"liblinear\",C=i,random_state=420)\n",
    "    fullx.append(cross_val_score(LR_,X,y,cv=10).mean())\n",
    "    X_embedded = SelectFromModel(LR_,norm_order=1).fit_transform(X,y)\n",
    "    fsx.append(cross_val_score(LR_,X_embedded,y,cv=10).mean())\n",
    "    \n",
    "print(max(fsx),C[fsx.index(max(fsx))])\n",
    "plt.figure(figsize=(20,5))\n",
    "plt.plot(C,fullx,label=\"full\")\n",
    "plt.plot(C,fsx,label=\"feature selection\")\n",
    "plt.xticks(C)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "555cbf7e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.8058676654182271 0.9850000000000004\n"
     ]
    },
    {
     "data": {
      "image/png": "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4UzyMZRX1QAAGaitb1GRk86pqhjX9TrndO7iSnocAQAAIBPXXnutduzYoTe+8Y26/vrr1d7erj/+4z/WhRdeqOc///n68Y/DSDe7du3Sy172Mp1//vk6//zzjwRWrrvuOv3yl7/U2rVrdf311x/V6+f1r3+9HnzwQUlSeXm5/vZv/1YvfOEL9cgjj+g73/mOLrroIq1du1Z/+qd/qv7+/qPyd91116mmpkZr1qzRhz/8YUlSU1OT3vzmN+vCCy/UhRdeqIceeuio+Y6Vpq2tTe9617u0evVqrVmzRrfeequuu+46dXZ2au3atUd6XZWXl0uSvPf6yEc+olWrVmn16tX67//+b0nSgw8+qEsvvVRvectbtGLFCr3jHe+Q9/nfNhu+IfU4AgCMv7r6Fp25oFxlpeP/1KNmUaX+65Fn1NefU0kxzxgAAAAwfm688Ubdc889euCBBzR//nx97GMf02WXXaabbrpJhw4d0kUXXaRXvvKVWrhwoe677z6VlZVp69atuvrqq7Vu3Tp95jOf0ec//3ndeeedksLrYsfS3t6uVatW6R//8R9VV1enz372s3rooYdUWlqq973vffrud7+rd77znUfSHzhwQD/84Q+1efNmOed06NAhSdIHP/hBfehDH9LFF1+s3bt364orrlBdXd2AdR0rzSc/+UnNnj1bGzZskCQdPHhQb37zm3XDDTdo/fr1R+X5tttu0/r16/Xkk09q//79uvDCC/Xyl79ckvTEE09o06ZNWrx4sV760pfqoYce0sUXXzyC2iBwBAAFq3Zviy5Yekom665ZXKnuvpx27G8f9x5PAAAAKCB3Xyc1bBjdZVavll4z9GGO7733Xt1+++36/Oc/L0nq6urS7t27tXjxYn3gAx/Q+vXrVVxcrC1btgw7K8XFxXrzm98sSbr//vv1+OOP68ILL5QkdXZ2auHChQPSV1ZWqqysTH/yJ3+i173udXr9618vSfrpT3+q2traI+laWlrU2to6YN5jpfnpT3+qW2655cj0uXPnHjfPv/rVr3T11VeruLhYVVVVuuSSS/TYY4+psrJSF110kZYsWSJJWrt2rXbt2kXgCAAmo0MdPdp7uGvcxzeKahbNlhSCVwSOAAAAkCXvvW699VYtX758wPS///u/V1VVlZ588knlcjmVlZUNOn9JSYlyudyR37u6uo78v6ys7Mi4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\n",
      "text/plain": [
       "<Figure size 1440x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#通过曲线可以找到最佳的C值在1.01附近，我们再一次对C值的范围进行细分，找到最终的C值\n",
    "fullx = []\n",
    "fsx = []\n",
    "C=np.arange(0.55,1.55,0.005)\n",
    "for i in C:\n",
    "    LR_ = LR(solver=\"liblinear\",C=i,random_state=420)\n",
    "    fullx.append(cross_val_score(LR_,X,y,cv=10).mean())\n",
    "    X_embedded = SelectFromModel(LR_,norm_order=1).fit_transform(X,y)\n",
    "    fsx.append(cross_val_score(LR_,X_embedded,y,cv=10).mean())\n",
    "    \n",
    "print(max(fsx),C[fsx.index(max(fsx))])\n",
    "plt.figure(figsize=(20,5))\n",
    "plt.plot(C,fullx,label=\"full\")\n",
    "plt.plot(C,fsx,label=\"feature selection\")\n",
    "plt.xticks(C)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "2d04a765",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABI4AAAEvCAYAAAAjE4p1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAA0WUlEQVR4nO3deZSc9X3n+/dXrZaEFsQmCaHWAhgjEBaN0NIJ3ghjA57Y2HPNBJJrO7FPMJNwr7EzOGScmZNMjn24xksWe0xI7Isz3uLEOFYcLmA7sXCcVEktEEIgBAK6pda+oAUJa+vv/aOqRdNqoRJq6emqfr/O6VP1/Op5qr9fuukuffp5vhWZiSRJkiRJktTXsKILkCRJkiRJ0uBkcCRJkiRJkqR+GRxJkiRJkiSpXwZHkiRJkiRJ6pfBkSRJkiRJkvplcCRJkiRJkqR+DS+6gONxzjnn5IwZM4ouQ5IkSZIkqWEsXbp0a2ZO6O+xugqOZsyYQXt7e9FlSJIkSZIkNYyI6DzaY16qJkmSJEmSpH4ZHEmSJEmSJKlfBkeSJEmSJEnql8GRJEmSJEmS+mVwJEmSJEmSpH4ZHEmSJEmSJKlfBkeSJEmSJEnql8GRJEmSJEmS+mVwJEmSJEmSpH4NL7oANYbnnnuOf/7nfy66DEmSJEmSTolhw4bxkY98pOgyTjqDIw2I3/md3+Hhhx8uugxJkiRJkk6JESNGGBxJteju7qZUKvHBD36Qz3zmM0WXI0mSJEmSBojBkU7YqlWr2LVrF29/+9uZMmVK0eVIkiRJkqQB4nBsnbBSqQRAW1tbwZVIkiRJkqSBZHCkE1Yulxk/fjwXX3xx0aVIkiRJkqQBZHCkE1Yul5k3bx7DhvntJEmSJElSI/Ff+johe/bsYfny5V6mJkmSJElSAzI40glZunQp3d3dLFiwoOhSJEmSJEnSADM40gkpl8sABkeSJEmSJDUggyOdkFKpxAUXXMCECROKLkWSJEmSJA0wgyOdkHK57NlGkiRJkiQ1KIMjvW5dXV2sW7fO4EiSJEmSpAZlcKTXrWe+ke+oJkmSJElSYzI40utWLpcZMWIEra2tRZciSZIkSZJOgpqCo4i4LiJWRcTqiLizn8fHR8Q/RsTjEfFkRPxWdX1qRPxLRKysrn+s1zF/FBHrImJZ9eNdA9eWToVyuUxraysjR44suhRJkiRJknQSHDM4iogm4MvA9cClwM0RcWmf3X4XeCozLwfeDnw+IkYAB4Hfy8xLgDbgd/sc+8XMbK1+PHDi7ehUOXjwIO3t7V6mJkmSJElSA6vljKP5wOrMfD4z9wPfAW7os08C4yIigLHAduBgZm7IzEcBMnM3sBKYMmDVqzArVqxg7969DsaWJEmSJKmBDa9hnynA2l7bXUDftOBLwEJgPTAO+LXM7O69Q0TMAK4Ayr2Wb4uIDwLtVM5MevG4qldhegZj9wRHBw4cYPv27UWWJEmSJEnSKTVp0qSiSzjpagmOop+17LN9LbAM+BXgQuBHEfGzzNwFEBFjge8Bt/esAV8B/qT6XH8CfB748BGfPOIW4BaAadOm1VCuToVyucw555zDBRdcAMDChQtZsWJFwVVJkiRJknRqNDU18Yd/+IdFl3HS1RIcdQFTe223UDmzqLffAu7KzARWR8QLwExgcUQ0UwmNvpmZ9/cckJmbeu5HxF8BP+zvk2fmvcC9AHPnzu0bWKkgpVKJBQsWEBFkJs899xxveMMbmDNnTtGlSZIkSZJ00lWm9TS+WoKjJcBFEXE+sA64Cfj1PvusAa4BfhYRk4CLgeerM4++CqzMzC/0PiAiJmfmhurm+wBPV6kTO3fu5Omnn+bmm28GYPPmzbz88stcdtllXHLJJQVXJ0mSJEmSBsoxg6PMPBgRtwEPAU3A1zLzyYi4tfr4PVQuNbsvIp6gcmnb72fm1oh4M/AB4ImIWFZ9yv9WfQe1z0ZEK5VL1TqAjw5oZzpplixZQmYenm/U0dEBwPTp0wusSpIkSZIkDbRazjiiGvQ80Gftnl731wPv7Oe4f6X/GUlk5geOq1INGqVSCYD58+cD0NnZyRlnnMEZZ5xRYFWSJEmSJGmgDSu6ANWfcrnMzJkzOeOMM8hMOjs7PdtIkiRJkqQGZHCk45KZlMvlw5epbdmyhb179zJjxoxiC5MkSZIkSQPO4EjH5YUXXmDLli20tbUBzjeSJEmSJKmRGRzpuJTLZYDDZxx1dnYyfvx45xtJkiRJktSADI50XMrlMqeddhpvetObXjXfKKLfGeiSJEmSJKmOGRzpuJRKJebOncvw4cPZunUre/bscb6RJEmSJEkNyuBINdu3bx+PPfbY4cvUnG8kSZIkSVJjMzhSzR5//HH279//qvlGp59+OmeeeWbBlUmSJEmSpJPB4Eg1K5VKALS1tZGZdHR0ON9IkiRJkqQGZnCkmpXLZc477zxaWlrYtm2b840kSZIkSWpwBkeqWblcdr6RJEmSJElDiMGRarJlyxaee+452tragMp8o3HjxnHWWWcVXJkkSZIkSTpZDI5Uk8WLFwOwYMEC5xtJkiRJkjREGBypJuVymWHDhnHllVeyfft2XnrpJS9TkyRJkiSpwRkcqSalUok3velNjB079vB8IwdjS5IkSZLU2AyOdEzd3d0sXrz48GDszs5OxowZw9lnn11wZZIkSZIk6WQyONIxPfPMM+zcufPwfKPOzk5mzJjhfCNJkiRJkhqcwZGOqVQqAdDW1saLL77Irl27nG8kSZIkSdIQYHCkYyqXy5x++unMnDmTzs5OwPlGkiRJkiQNBQZHOqZyucy8efMYNmwYHR0djBkzhnPOOafosiRJkiRJ0klmcKTXtHfvXpYvX05bW9vh+UbTp093vpEkSZIkSUOAwZFe09KlSzl06BALFixgx44d7Ny50/lGkiRJkiQNEQZHek3lchmABQsWON9IkiRJkqQhxuBIr6lcLnP++eczceJEOjo6GD16NBMmTCi6LEmSJEmSdAoYHOk1lUolFixYAOB8I0mSJEmShhiDIx3V+vXr6erqOjzfaMeOHc43kiRJkiRpCKkpOIqI6yJiVUSsjog7+3l8fET8Y0Q8HhFPRsRvHevYiDgrIn4UEc9Wb88cmJY0UHrmG7W1tTnfSJIkSZKkIeiYwVFENAFfBq4HLgVujohL++z2u8BTmXk58Hbg8xEx4hjH3gn8JDMvAn5S3dYgUiqVaG5uprW1lY6ODk477TQmTpxYdFmSJEmSJOkUqeWMo/nA6sx8PjP3A98BbuizTwLjojL8ZiywHTh4jGNvAL5evf914L0n0ogGXrlcprW1lVGjRjnfSJIkSZKkIaiW4GgKsLbXdld1rbcvAZcA64EngI9lZvcxjp2UmRsAqrf9nsoSEbdERHtEtG/ZsqWGcjUQDh48SHt7O21tbezcuZMXX3zR+UaSJEmSJA0xtQRH/Z1ikn22rwWWAecBrcCXIuL0Go99TZl5b2bOzcy5vg38qfPkk0+yZ88eFixY4HwjSZIkSZKGqFqCoy5gaq/tFipnFvX2W8D9WbEaeAGYeYxjN0XEZIDq7ebjL18nS89g7AULFtDR0cGoUaOYNGlSwVVJkiRJkqRTqZbgaAlwUUScHxEjgJuAhX32WQNcAxARk4CLgeePcexC4EPV+x8CfnAijWhglctlzj77bC688ELnG0mSJEmSNEQNP9YOmXkwIm4DHgKagK9l5pMRcWv18XuAPwHui4gnqFye9vuZuRWgv2OrT30X8N2I+AiV4OnGgW1NJ6JUKrFgwQJ2797N9u3bmTt3btElSZIkSZKkU+yYwRFAZj4APNBn7Z5e99cD76z12Or6NqpnKWlw2bVrFytXruTXfu3XnG8kSZIkSdIQVsulahpilixZQmbS1tZGR0cHI0eOdL6RJEmSJElDkMGRjlAqlQCYP3/+4flGw4b5rSJJkiRJ0lBjGqAjlMtlLr74Ypqamti2bRvTp08vuiRJkiRJklQAgyO9SmZSLpdZsGCB840kSZIkSRriDI70Kh0dHWzevPnwfKMRI0Zw7rnnFl2WJEmSJEkqgMGRXqVcLgMcPuPI+UaSJEmSJA1dJgJ6lXK5zKhRozj//PPZunWr840kSZIkSRrCDI70KqVSiblz57J+/XrA+UaSJEmSJA1lBkc6bP/+/Tz22GMsWLDg8HyjyZMnF12WJEmSJEkqiMGRDnv88cfZt2/f4flG06ZNc76RJEmSJElDmKmADiuVSgBcfvnlbNmyxflGkiRJkiQNcQZHOqxcLjN58mQOHjwION9IkiRJkqShzuBIh5XL5cPzjZqbm51vJEmSJEnSEGdwJAC2bt3K6tWraWtro7Ozk6lTp9LU1FR0WZIkSZIkqUAGRwJg8eLFAMyZM4fNmzd7mZokSZIkSTI4UkW5XGbYsGGcc845AA7GliRJkiRJBkeqKJfLXHbZZWzcuJHhw4czZcqUokuSJEmSJEkFMzgS3d3dhwdjO99IkiRJkiT1MDgSzz77LDt27GDevHls2rTJ+UaSJEmSJAkwOBKVy9SAw4GR840kSZIkSRIYHAkolUqMGzeOgwcPOt9IkiRJkiQdZnAkyuUy8+bNY82aNbS0tDB8+PCiS5IkSZIkSYOAwdEQt3fvXpYvX05bWxsbN250vpEkSZIkSTrM4GiIe/TRRzl48CAzZ84EnG8kSZIkSZJeYXA0xPUMxh43bhxNTU20tLQUXJEkSZIkSRosagqOIuK6iFgVEasj4s5+Hr8jIpZVP1ZExKGIOCsiLu61viwidkXE7dVj/igi1vV67F0D3JtqUC6XmTFjBps3b3a+kSRJkiRJepVjpgQR0QR8GXgH0AUsiYiFmflUzz6ZeTdwd3X/dwMfz8ztwHagtdfzrAO+3+vpv5iZnxuYVvR6lEol3vzmN7Nx40be8pa3FF2OJEmSJEkaRGo542g+sDozn8/M/cB3gBteY/+bgW/3s34N8Fxmdh5/mToZNmzYwNq1a2ltbSUzHYwtSZIkSZJepZbgaAqwttd2V3XtCBExGrgO+F4/D9/EkYHSbRGxPCK+FhFn1lCLBlDPfKNJkyY530iSJEmSJB2hluAo+lnLo+z7buDn1cvUXnmCiBHAe4C/67X8FeBCKpeybQA+3+8nj7glItojon3Lli01lKtalUolmpub2bdvH1OmTKG5ubnokiRJkiRJ0iBSS3DUBUzttd0CrD/Kvv2dVQRwPfBoZm7qWcjMTZl5KDO7gb+ickncETLz3sycm5lzJ0yYUEO5qlW5XObKK69k48aNTJ8+vehyJEmSJEnSIFNLcLQEuCgizq+eOXQTsLDvThExHngb8IN+nuOIuUcRMbnX5vuAFbUWrRN36NAhlixZwi/90i8530iSJEmSJPXrmO+qlpkHI+I24CGgCfhaZj4ZEbdWH7+nuuv7gIczc0/v46tzj94BfLTPU382IlqpXPbW0c/jOomefPJJ9uzZw/Tp09m1axdTp0499kGSJEmSJGlIOWZwBJCZDwAP9Fm7p8/2fcB9/Ry7Fzi7n/UPHEedGmA9g7GbmpqcbyRJkiRJkvpVy6VqakDlcplJkyaxfft25xtJkiRJkqR+GRwNUaVSiauvvtr5RpIkSZIk6agMjoagXbt28dRTTzFz5kyGDRvmfCNJkiRJktSvmmYcqbG0t7eTmYwdO5YzzjiDESNGFF2SJEmSJEkahDzjaAgqlUo0Nzezd+9e5xtJkiRJkqSjMjgagsrlMm1tbXR3dzvfSJIkSZIkHZXB0RCTmZTLZebMmUNEON9IkiRJkiQdlTOOhpjOzk42bdrEhAkTmDRpEiNHjiy6JEmSJEmSNEh5xtEQUy6XaW5u5tChQ843kiRJkiRJr8ngaIgpl8tccMEFZKbzjSRJkiRJ0msyOBpiyuUyCxYsICKYNm1a0eVIkiRJkqRBzOBoCNm/fz9Lly5l2rRpTJ482flGkiRJkiTpNRkcDSHLly/n0KFDNDc3O99IkiRJkiQdk8HREFIul2lpaXG+kSRJkiRJqonB0RBSKpWYNWuW840kSZIkSVJNDI6GkHK5zMyZMzn33HMZNWpU0eVIkiRJkqRBzuBoiNi2bRsvvPAC48aNc76RJEmSJEmqicHRELF48WKmTJkC4HwjSZIkSZJUE4OjIaJcLh8OjJxvJEmSJEmSamFwNESUy2VmzZrFueeey2mnnVZ0OZIkSZIkqQ4YHA0BmUl7ezvnnHOO840kSZIkSVLNDI6GgGeffZbRo0czbNgw5xtJkiRJkqSaGRwNAeVy+fCZRs43kiRJkiRJtTI4GgJKpRIXXnghEydOZPTo0UWXI0mSJEmS6oTB0RCwePFipk6d6mVqkiRJkiTpuNQUHEXEdRGxKiJWR8Sd/Tx+R0Qsq36siIhDEXFW9bGOiHii+lh7r2POiogfRcSz1dszB64t9Xj55ZfZunUrTU1NBkeSJEmSJOm4HDM4iogm4MvA9cClwM0RcWnvfTLz7sxszcxW4A+ARZm5vdcuV1cfn9tr7U7gJ5l5EfCT6rYG2KOPPkpLSwuA76gmSZIkSZKOSy1nHM0HVmfm85m5H/gOcMNr7H8z8O0anvcG4OvV+18H3lvDMTpO5XKZGTNmcOaZZzrfSJIkSZIkHZdagqMpwNpe213VtSNExGjgOuB7vZYTeDgilkbELb3WJ2XmBoDq7cTjKVy16XlHtTe84Q1FlyJJkiRJkupMLcFR9LOWR9n33cDP+1ymdlVmzqFyqdvvRsRbj6fAiLglItojon3Lli3Hc6iA5557jubmZi9TkyRJkiRJx62W4KgLmNpruwVYf5R9b6LPZWqZub56uxn4PpVL3wA2RcRkgOrt5v6eMDPvzcy5mTl3woQJNZSrHhs3bmTUqFEADsaWJEmSJEnHrZbgaAlwUUScHxEjqIRDC/vuFBHjgbcBP+i1NiYixvXcB94JrKg+vBD4UPX+h3ofp4HRM99ozJgxjBkzpuhyJEmSJElSnRl+rB0y82BE3AY8BDQBX8vMJyPi1urj91R3fR/wcGbu6XX4JOD7EdHzub6VmQ9WH7sL+G5EfARYA9w4EA3pFaVSiWnTpnHRRRcVXYokSZIkSapDxwyOADLzAeCBPmv39Nm+D7ivz9rzwOVHec5twDW1l6rj9dRTTzFnzhwuvPDCokuRJEmSJEl1qJZL1VSHDh06xO7duwHnG0mSJEmSpNfH4KhBPfXUU0yePJnm5mbGjh1bdDmSJEmSJKkOGRw1qJ75RtOnTy+6FEmSJEmSVKcMjhrUY489xqhRo5g9e3bRpUiSJEmSpDplcNSgNm3aBDjfSJIkSZIkvX4GRw1o9+7djBw5ksxk3LhxRZcjSZIkSZLqlMFRA1qyZAnTp09n4sSJRZciSZIkSZLqmMFRAyqVSowaNYorrrii6FIkSZIkSVIdMzhqQC+88AIAs2bNKrgSSZIkSZJUzwyOGkxmcuDAAQ4cOMDpp59edDmSJEmSJKmOGRw1mDVr1nDuuecyduzYokuRJEmSJEl1zuCowSxatIjTTjuNmTNnFl2KJEmSJEmqcwZHDWblypUAXHXVVQVXIkmSJEmS6t3wogvQwNq5cyfd3d1MmDCh6FIkSZIkSVKd84yjBrJ//37GjRvH8OHmgZIkSZIk6cSZMDSQn//854wePZrJkycXXYokSZIkSWoAnnHUQB599FEAfvmXf7ngSiRJkiRJUiPwjKMGsnHjRjKTWbNmFV2KJEmSJElqAJ5x1CAyk+HDh7N//34iouhyJEmSJElSA/CMowaxevVqRo0axZgxY4ouRZIkSZIkNQjPOGoQ//Zv/wbAFVdcUXAlkiRJkiSpURgcNYiOjg527tzJm9/85qJLkSRJkiRJDcLgqAFkJgcOHGDHjh2MHz++6HIkSZIkSVKDMDhqAFu3bqW5uZlx48YVXYokSZIkSWogBkcNYMmSJQDMnDmz4EokSZIkSVIjMThqACtXrmTXrl1cddVVRZciSZIkSZIaSE3BUURcFxGrImJ1RNzZz+N3RMSy6seKiDgUEWdFxNSI+JeIWBkRT0bEx3od80cRsa7Xce8ayMaGisxk586ddHV1MWvWrKLLkSRJkiRJDWT4sXaIiCbgy8A7gC5gSUQszMynevbJzLuBu6v7vxv4eGZuj4iRwO9l5qMRMQ5YGhE/6nXsFzPzcwPc05Cyfft2mpqaDn9IkiRJkiQNlFrOOJoPrM7M5zNzP/Ad4IbX2P9m4NsAmbkhMx+t3t8NrASmnFjJ6u2ZZ54BYMaMGcUWIkmSJEmSGk4twdEUYG2v7S6OEv5ExGjgOuB7/Tw2A7gCKPdavi0ilkfE1yLizFqL1iuWL1/O7t27mTdvXtGlSJIkSZKkBlNLcBT9rOVR9n038PPM3P6qJ4gYSyVMuj0zd1WXvwJcCLQCG4DP9/vJI26JiPaIaN+yZUsN5Q4dmcmmTZvo7Oykra2t6HIkSZIkSVKDqSU46gKm9tpuAdYfZd+bqF6m1iMimqmERt/MzPt71jNzU2Yeysxu4K+oXBJ3hMy8NzPnZubcCRMm1FDu0PHiiy8eHo49efLkosuRJEmSJEkNppbgaAlwUUScHxEjqIRDC/vuFBHjgbcBP+i1FsBXgZWZ+YU++/dOOt4HrDj+8oe2jo4OACZOnFhsIZIkSZIkqSEd813VMvNgRNwGPAQ0AV/LzCcj4tbq4/dUd30f8HBm7ul1+FXAB4AnImJZde2/ZeYDwGcjopXKZW8dwEdPvJ2h5emnn+all16itbW16FIkSZIkSVIDOmZwBFANeh7os3ZPn+37gPv6rP0r/c9IIjM/cBx1qo/MpKOjg87OTt773vcWXY4kSZIkSWpAtVyqpkFox44dHDhwgDVr1jBnzpyiy5EkSZIkSQ3I4KhO9cw3GjVqFKeddlqxxUiSJEmSpIZkcFSnXnjhBfbu3cusWbOKLkWSJEmSJDUog6M69dxzz9HR0cGCBQuKLkWSJEmSJDUog6M6tGPHDvbu3WtwJEmSJEmSTiqDozrUM99o+/btXHTRRcUWI0mSJEmSGpbBUR3q7Oxk3759XHjhhQwb5pdQkiRJkiSdHKYOdeiFF17g+eef9zI1SZIkSZJ0Uhkc1ZmdO3eyc+dOOjo6aGtrK7ocSZIkSZLUwAyO6kzPfKOOjg7mz59fbDGSJEmSJKmhGRzVmY6ODg4ePMi4ceM4++yziy5HkiRJkiQ1MIOjOtPZ2cnatWu9TE2SJEmSJJ10Bkd1ZNeuXbz44ousWrXKwdiSJEmSJOmkMziqI73nGxkcSZIkSZKkk83gqI50dnaSmezYsYPLL7+86HIkSZIkSVKDMziqIx0dHWzdupUrrriCESNGFF2OJEmSJElqcAZHdWL37t1s376dJ554wsvUJEmSJEnSKWFwVCd65hs9++yzBkeSJEmSJOmUMDiqE52dnUQEGzdupK2trehyJEmSJEnSEGBwVCc6OjrYs2cPEyZMYPr06UWXI0mSJEmShgCDozrw0ksvsW3bNlatWsWCBQuIiKJLkiRJkiRJQ4DBUR3omW/U3t7uZWqSJEmSJOmUMTiqA52dnQwbNowNGzY4GFuSJEmSJJ0yBkd1oKOjg+7ubjKTefPmFV2OJEmSJEkaIgyOBrk9e/awdetW1q5dy6WXXsrpp59edEmSJEmSJGmIqCk4iojrImJVRKyOiDv7efyOiFhW/VgREYci4qzXOjYizoqIH0XEs9XbMweurcbRM9/o3//9371MTZIkSZIknVLHDI4iogn4MnA9cClwc0Rc2nufzLw7M1szsxX4A2BRZm4/xrF3Aj/JzIuAn1S31UdnZyfDhw/n6aefNjiSJEmSJEmnVC1nHM0HVmfm85m5H/gOcMNr7H8z8O0ajr0B+Hr1/teB9x5n7UNCZ2cnzc3NdHd3+45qkiRJkiTplKolOJoCrO213VVdO0JEjAauA75Xw7GTMnMDQPV2Yu1lDw179+5l8+bNbN26lTFjxjBr1qyiS5IkSZIkSUNILcFR9LOWR9n33cDPM3P76zi2/08ecUtEtEdE+5YtW47n0LrX2dkJwOOPP87cuXNpamoquCJJkiRJkjSU1BIcdQFTe223AOuPsu9NvHKZ2rGO3RQRkwGqt5v7e8LMvDcz52bm3AkTJtRQbuPo6Ohg+PDhLFq0yMvUJEmSJEnSKVdLcLQEuCgizo+IEVTCoYV9d4qI8cDbgB/UeOxC4EPV+x/qc5yonHE0fvx49u3b52BsSZIkSZJ0yg0/1g6ZeTAibgMeApqAr2XmkxFxa/Xxe6q7vg94ODP3HOvY6sN3Ad+NiI8Aa4AbB6qpRrB37142bdrEyJEjAQyOJEmSJEnSKXfM4AggMx8AHuizdk+f7fuA+2o5trq+Dbim9lKHljVr1gDwzDPPMHXqVM4777yCK5IkSZIkSUNNLZeqqQA9840eeeQRzzaSJEmSJEmFMDgapDo7O5k0aRLPPfecwZEkSZIkSSqEwdEg9PLLL7Nx40a6u7sBfEc1SZIkSZJUCIOjQahnvtHatWtpampizpw5BVckSZIkSZKGIoOjQaijo4OmpiZKpRKzZ89m9OjRRZckSZIkSZKGIIOjQaizs5OWlhYWL17sZWqSJEmSJKkwBkeDzC9+8Qs2btzImDFj2LVrl4OxJUmSJElSYQyOBpk1a9aQmWzZsgXA4EiSJEmSJBXG4GiQ6Zlv9Pjjj3PGGWfwxje+seiSJEmSJEnSEGVwNMh0dnYyZcoUyuUy8+fPZ9gwv0SSJEmSJKkYphKDyL59+9iwYQPnnXceTzzxhJepSZIkSZKkQhkcDSI9841efvlluru7fUc1SZIkSZJUKIOjQaSjo4Nhw4axatUqAObPn19wRZIkSZIkaSgzOBpEes83uvDCCznnnHOKLkmSJEmSJA1hBkeDxL59+1i/fj0zZsygXC57mZokSZIkSSqcwdEgsXbtWjKTMWPGsH79egdjS5IkSZKkwhkcDRI98406OzsBDI4kSZIkSVLhDI4Gic7OTs477zyWLFnCyJEjaW1tLbokSZIkSZI0xBkcDQL79+9/1XyjK664ghEjRhRdliRJkiRJGuIMjgaBtWvX0t3dTUtLC+3t7V6mJkmSJEmSBgWDo0Ggo6ODiGDXrl28/PLLvqOaJEmSJEkaFAyOBoGe+UZLly4FHIwtSZIkSZIGB4Ojgh04cIB169Yxffp0yuUyEyZMYMaMGUWXJUmSJEmSZHBUtJ75RjNmzKBUKrFgwQIiouiyJEmSJEmSDI6K1jPf6PTTT+fpp592vpEkSZIkSRo0agqOIuK6iFgVEasj4s6j7PP2iFgWEU9GxKLq2sXVtZ6PXRFxe/WxP4qIdb0ee9eAdVVHOjs7mTx5MsuXLwecbyRJkiRJkgaP4cfaISKagC8D7wC6gCURsTAzn+q1zxnA/wKuy8w1ETERIDNXAa29nmcd8P1eT//FzPzcwLRSf3rmG82fP59SqUREMG/evKLLkiRJkiRJAmoIjoD5wOrMfB4gIr4D3AA81WufXwfuz8w1AJm5uZ/nuQZ4LjM7T6zkxtHV1cWhQ4eYMWMGf/7nf84ll1zC+PHjiy5LkiRJkqSGcuDAAbq6uvjFL35RdCmFGjVqFC0tLTQ3N9d8TC3B0RRgba/tLqDv9VRvBJoj4qfAOODPMvNv+uxzE/DtPmu3RcQHgXbg9zLzxVoLbwQ9842mTp1KuVzm3e9+d9ElSZIkSZLUcLq6uhg3bhwzZswYsm9IlZls27aNrq4uzj///JqPq2XGUX//RbPP9nDgSuA/AtcC/z0i3nj4CSJGAO8B/q7XMV8BLqRyKdsG4PP9fvKIWyKiPSLat2zZUkO59aOzs5Nzzz2X9evXs3XrVucbSZIkSZJ0EvziF7/g7LPPHrKhEUBEcPbZZx/3WVe1BEddwNRe2y3A+n72eTAz92TmVuAR4PJej18PPJqZm3oWMnNTZh7KzG7gr6hcEneEzLw3M+dm5twJEybUUG59OHjwIF1dXUyfPp1yuQzgO6pJkiRJknSSDOXQqMfr+W9QS3C0BLgoIs6vnjl0E7Cwzz4/AN4SEcMjYjSVS9lW9nr8ZvpcphYRk3ttvg9YcbzF17Pe843K5TKjR49m1qxZRZclSZIkSZJOgrFjxx6x9oUvfIFLL72U2bNnc80119DZOfjGQh8zOMrMg8BtwENUwqDvZuaTEXFrRNxa3Wcl8CCwHFgM/HVmrgCoBknvAO7v89SfjYgnImI5cDXw8QHqqS50dHQAMH36dEqlEnPnzmX48FpGTkmSJEmSpEZwxRVX0N7ezvLly3n/+9/PJz/5yaJLOkJNSUVmPgA80Gftnj7bdwN393PsXuDsftY/cFyVNpie+UYRwbJly7j99tuLLkmSJEmSJJ1CV1999eH7bW1tfOMb3yiwmv55iksBeuYbXXnllSxbtoz9+/c7GFuSJEmSpFPg9ttvZ9myZQP6nK2trfzpn/7pCT3HV7/6Va6//vqBKWgAGRwVYN26dRw8eJAZM2bw0EMPARgcSZIkSZI0RH3jG9+gvb2dRYsWFV3KEQyOCtAz7KrnHdVaWlqYMmVKwVVJkiRJktT4TvTMoIH24x//mE9/+tMsWrSIkSNHFl3OEQyOCtDR0cGkSZM47bTTKJfLnm0kSZIkSdIQ9Nhjj/HRj36UBx98kIkTJxZdTr8Mjk6xQ4cOsXbtWubMmcOWLVt4/vnnufXWW4suS5IkSZIknUR79+6lpaXl8PYnPvEJHnjgAV566SVuvPFGAKZNm8bChQuLKrFfBken2Msvv8wFF1zAG97wBsrlMlCZnC5JkiRJkhpXd3f3EWuf+MQnCqjk+AwruoChZuzYsdx8881cdNFFlMtlmpqauPLKK4suS5IkSZIk6QgGRwUqlUq86U1vYvTo0UWXIkmSJEmSdASDo4J0d3ezePFiL1OTJEmSJEmDlsFRQVatWsWuXbt8RzVJkiRJkjRoGRwVpFQqARgcSZIkSZKkQcvgqCDlcpnx48dz8cUXF12KJEmSJElSvwyOClIul5k/fz7DhvklkCRJkiSp0Y0dO/aItS984QtceumlzJ49m2uuuYbOzk4AOjo6+Na3vvW6P9dnPvOZ131sX6YWBdizZw9PPPGEl6lJkiRJkjSEXXHFFbS3t7N8+XLe//7388lPfhIwOBryli5dyqFDh3xHNUmSJEmShrCrr76a0aNHA9DW1kZXVxcAd955Jz/72c9obW3li1/8IocOHeKOO+5g3rx5zJ49m7/8y78EYMOGDbz1rW+ltbWVyy67jJ/97GfceeedvPzyy7S2tvIbv/EbJ1zj8BN+Bh23crkMwPz58wuuRJIkSZKkoeXBBx9k48aNA/qc5557Ltddd90JPcdXv/pVrr/+egDuuusuPve5z/HDH/4QgHvvvZfx48ezZMkS9u3bx1VXXcU73/lO7r//fq699lo+9alPcejQIfbu3ctb3vIWvvSlL7Fs2bITbQswOCpEuVzmggsuYMKECUWXIkmSJEmSCvaNb3yD9vZ2Fi1a1O/jDz/8MMuXL+fv//7vAdi5cyfPPvss8+bN48Mf/jAHDhzgve99L62trQNem8FRAUqlEm9729uKLkOSJEmSpCHnRM8MGmg//vGP+fSnP82iRYsYOXJkv/tkJn/xF3/Btddee8RjjzzyCP/0T//EBz7wAe644w4++MEPDmh9zjg6xdatW8e6descjC1JkiRJ0hD32GOP8dGPfpSFCxcyceLEw+vjxo1j9+7dh7evvfZavvKVr3DgwAEAnnnmGfbs2UNnZycTJ07kt3/7t/nIRz7Co48+CkBzc/PhfU+UZxydYueeey5PPPGEl6lJkiRJkjSE7N27l5aWlsPbn/jEJ3jggQd46aWXuPHGGwGYNm0aCxcuZPbs2QwfPpzLL7+c3/zN3+RjH/sYHR0dzJkzh8xkwoQJ/MM//AM//elPufvuu2lubmbs2LH8zd/8DQC33HILs2fPZs6cOXzzm988obojM0/oCU6luXPnZnt7e9FlSJIkSZKkOrJy5UouueSSossYFPr7bxERSzNzbn/7e6maJEmSJEmS+mVwJEmSJEmSpH4ZHEmSJEmSJKlfBkeSJEmSJKnh1dOM55Pl9fw3MDiSJEmSJEkNbdSoUWzbtm1Ih0eZybZt2xg1atRxHTe8lp0i4jrgz4Am4K8z865+9nk78KdAM7A1M99WXe8AdgOHgIM9U7oj4izgb4EZQAfwnzPzxeOqXpIkSZIk6RhaWlro6upiy5YtRZdSqFGjRtHS0nJcxxwzOIqIJuDLwDuALmBJRCzMzKd67XMG8L+A6zJzTURM7PM0V2fm1j5rdwI/ycy7IuLO6vbvH1f1kiRJkiRJx9Dc3Mz5559fdBl1qZZL1eYDqzPz+czcD3wHuKHPPr8O3J+ZawAyc3MNz3sD8PXq/a8D762pYkmSJEmSJJ0StQRHU4C1vba7qmu9vRE4MyJ+GhFLI+KDvR5L4OHq+i291idl5gaA6m3fs5QkSZIkSZJUoFpmHEU/a32nSQ0HrgSuAU4D/j0iSpn5DHBVZq6vXr72o4h4OjMfqbXAath0C8C0adNqPUySJEmSJEknqJbgqAuY2mu7BVjfzz5bM3MPsCciHgEuB57JzPVQuXwtIr5P5dK3R4BNETE5MzdExGSg38vbMvNe4F6AiNgSEZ21tzeonQP0nftU7+ypfjRiX43YEzRmX/ZUPxqxr0bsCRqzL3uqH43YVyP2BI3Zlz3Vj0bsq5F6mn60B2oJjpYAF0XE+cA64CYqM416+wHwpYgYDowAFgBfjIgxwLDM3F29/07gf1aPWQh8CLirevuDYxWSmRNqqLcuRER7zzvMNQp7qh+N2Fcj9gSN2Zc91Y9G7KsRe4LG7Mue6kcj9tWIPUFj9mVP9aMR+2rEnvpzzOAoMw9GxG3AQ0AT8LXMfDIibq0+fk9mroyIB4HlQDfw15m5IiIuAL4fET2f61uZ+WD1qe8CvhsRHwHWADcOdHOSJEmSJEl6/Wo544jMfAB4oM/aPX227wbu7rP2PJVL1vp7zm1UZiJJkiRJkiRpEKrlXdV0ctxbdAEngT3Vj0bsqxF7gsbsy57qRyP21Yg9QWP2ZU/1oxH7asSeoDH7sqf60Yh9NWJPR4jMvm+QJkmSJEmSJHnGkSRJkiRJko7C4OgUi4ivRcTmiFhRdC0nor8+IuLGiHgyIrojou4my0fE1Ij4l4hYWe3jY9X1uu0rIkZFxOKIeLzawx9X1+u2px4R0RQRj0XED6vbjdBTR0Q8ERHLIqK9ulbXfUXEGRHx9xHxdPX/rV9qgJ4urn6Nej52RcTtDdDXx6v1r4iIb1d/ftR1TwAR8bFqT09GxO3Vtbrq6yi/c8+KiB9FxLPV2zOr62dXf5e9FBFfKq7qYzue1xL10tdRerq7+jNweUR8PyLOqK7Xc09/Uu1nWUQ8HBHnVdfroid47dfkEfFfIyIj4pzqdl30dZSv1R9FxLpev7PeVV2vi57g6F+riPi/ImJV9WfGZ6trddHXUb5Wf9vr69QREcuq6/XcU2tElKo9tUfE/Op6XfQER+3r8oj496i8bv/HiDi9ul43fR0vg6NT7z7guqKLGAD3cWQfK4D/BDxyyqsZGAeB38vMS4A24Hcj4lLqu699wK9k5uVAK3BdRLRR3z31+Biwstd2I/QEcHVmtvZ6W8967+vPgAczcyaVN0tYSZ33lJmrql+jVuBKYC/wfeq4r4iYAvzfwNzMvIzKu6jeRB33BBARlwG/Dcyn8v33qxFxEfXX130c+Tv3TuAnmXkR8JPqNsAvgP8O/NdTVt3rdx+1v5aol77u48iefgRclpmzgWeAP6iu13NPd2fm7OrPwR8C/6O6Xi89wVFek0fEVOAdVN71uUe99HUf/f8744s9v7eqb3oE9dMT9NNXRFwN3ADMzsxZwOeqD9VLX/fRp6fM/LVery++B9xffahuewI+C/xxtaf/Ud2G+ukJ+u/rr4E7M/NNVF4D3lFdr6e+jovB0SmWmY8A24uu40T110dmrszMVQWVdMIyc0NmPlq9v5vKP3Cn1HNfWfFSdbO5+pH13BNARLQA/5HKD22g/r//jqae+6r+9eWtwFcBMnN/Zu6o5576cQ3wXGZ2NkBfw4HTImI4MBpY3wA9XQKUMnNvZh4EFgHvq7e+jvLa4Qbg69X7XwfeW913T2b+K5UXr4Pa8byWqJe+jtLTw9XvP4AS0FJdr+eedvXaHANkdb0ueoLXfE3+ReCTVHuq7lsXfR3PvzPqpSc4al//BbgrM/dV99lcva2Lvl7raxURAfxn4NvVfeu5pwROr94fD6yv7lsXPcFR+7qYV/7A8SPg/6juWzd9HS+DI6kfETEDuAIoF1zKCYvKJV3LgM3AjzKz7nsC/pTKi7rugusYaAk8HBFLI+KWoosZABcAW4D/NyqXFf51RIwpuqgBdhPVF3b1LDPXUflr7RpgA7AzMx8utqoBsQJ4a/XU8dHAu4CpBdc0UCZl5gao/OEDmFhwParNh4H/r+giBkJEfDoi1gK/wStnHNW1iHgPsC4zHy+6lgF2W/XSwq9F9bLWBvBG4C0RUY6IRRExr+iCBtBbgE2Z+WzRhQyA24G7qz8rPscrZ1zWuxXAe6r3b6RxXlsclcGR1EdEjKVyeujtff6iVpcy81D19NAWYH710o26FRG/CmzOzKVF13ISXJWZc4DrqVwq+daiCzpBw4E5wFcy8wpgD69cTlP3ImIElRcNf1d0LSeq+g+JG4DzgfOAMRHxfxZb1YnLzJXA/0Plr4EPAo9TuSxZOuUi4lNUvv++WXQtAyEzP5WZU6n0c1vR9Zyoarj8KRokBOvlK8CFVEYWbAA+X2g1A2c4cCaV8RJ3AN+tnqnTCG6mAf4oVfVfgI9Xf1Z8nOpZ6A3gw1Reqy8FxgH7C67npDM4knqJiGYqodE3M/P+Y+1fTzJzB/BT6n/G1lXAeyKiA/gO8CsR8Y1iSxoYmdlz+u5mKtdLzy+2ohPWBXT1Osvt76kESY3ieuDRzNxUdCED4D8AL2Tmlsw8QGWuwi8XXNOAyMyvZuaczHwrlVPNG+EvuACbImIyQPV2c8H16DVExIeAXwV+IzPzWPvXmW9RvUyjzl1IJTx/vPoaowV4NCLOLbSqE5SZm6p/ROwG/or6f23Rowu4vzqWYTGVs9DPKbimE1a9XPw/AX9bdC0D5EO8Mqvp72iQ77/MfDoz35mZV1IJ+Z4ruqaTzeBIqqr+leKrwMrM/ELR9QyEiJgQr7x7y2lU/nH4dKFFnaDM/IPMbMnMGVQuE/rnzKz7MyMiYkxEjOu5D7yTymmwdSszNwJrI+Li6tI1wFMFljTQGukvgmuAtogYXf1ZeA2vHj5ftyJiYvV2GpUX443yNVtI5QU51dsfFFiLXkNEXAf8PvCezNxbdD0DoTpkvsd7qPPXFgCZ+URmTszMGdXXGF3AnOrvsrrVEzBXvY86f23Ryz8AvwIQEW8ERgBbiyxogPwH4OnM7Cq6kAGyHnhb9f6v0CB/vOn12mIY8IfAPcVWdApkph+n8IPKC9YNwAEqv5A+UnRNA9UHlV9GXVTeyWsT8FDRdR5nT2+mMmNmObCs+vGueu4LmA08Vu1pBfA/qut121Of/t4O/LAReqIyD+jx6seTwKcapK9WoL36PfgPVE4rr+ueqn2NBrYB43ut1XVfwB9T+cffCuB/AyPrvadqXz+jElg+DlxTj1+ro/zOPZvKu6k9W709q9f+HVTOrnqpuv+lRfdwHH0d9WtTD30dpafVwFpeeW1xTwP09L3qz4rlwD9SeTORuunpaH31ebwDOKee+jrK1+p/A09Uv1YLgcn11NNr9DUC+Eb1+/BRKu8iXDd9He37j8o7eN3az/512ROVf18tpfI7uAxcWU89vUZfH6PyLpnPAHcBUW99He9HVJuTJEmSJEmSXsVL1SRJkiRJktQvgyNJkiRJkiT1y+BIkiRJkiRJ/TI4kiRJkiRJUr8MjiRJkiRJktQvgyNJkiRJkiT1y+BIkiRJkiRJ/TI4kiRJkiRJUr/+fziiPY0jm27gAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1440x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#找到了最佳的C值：0.9850000000000004，将它代到我们的模型中，并开始调整第二个关键参数max_iter，同样的，我们画出max_iter的学习曲线\n",
    "from sklearn.model_selection import train_test_split\n",
    "l2 = []\n",
    "l2test = []\n",
    "Xtrain, Xtest, Ytrain, Ytest = train_test_split(X,y,test_size=0.3,random_state=420)\n",
    "for i in np.arange(1,201,10):\n",
    "    lrl2 = LR(penalty=\"l2\",solver=\"liblinear\",C=0.9850000000000004,max_iter=i)\n",
    "    lrl2 = lrl2.fit(Xtrain,Ytrain)\n",
    "    l2.append(accuracy_score(lrl2.predict(Xtrain),Ytrain))\n",
    "    l2test.append(accuracy_score(lrl2.predict(Xtest),Ytest))\n",
    "    \n",
    "graph = [l2,l2test]\n",
    "color = [\"black\",\"gray\"]\n",
    "label = [\"L2\",\"L2test\"]\n",
    "\n",
    "plt.figure(figsize=(20,5))\n",
    "for i in range(len(graph)):\n",
    "    plt.plot(np.arange(1,201,10),graph[i],color[i],label=label[i])\n",
    "plt.legend(loc=4)\n",
    "plt.xticks(np.arange(1,201,10))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "9f6fe787",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.809250936329588"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#可以看到max_iter在11之后对模型的作用已经达到了上限，所以可以取一个任意值，这里使用的是200。现在用我们得到的最佳参数来进行建模C=0.9850000000000004，max_iter=200\n",
    "lr = LR(penalty=\"l2\",solver=\"liblinear\",C=0.9850000000000004,max_iter=200).fit(X,y)\n",
    "cross_val_score(lr,X,y,cv=10).mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "61facb88",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 交叉验证的得分还不错，达到了80.8%\n",
    "predictions = lr.predict(test)\n",
    "test=pd.read_csv('C:/Users/lenovo/Desktop/test.csv')\n",
    "PassengerId=test['PassengerId']\n",
    "prdict_test = pd.DataFrame({\"PassengerId\": PassengerId, \"Survived\": predictions.astype(np.int32)})\n",
    "prdict_test.to_csv(\"prdict_test.csv\", index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "66449137",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
